precompose functor